﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aquasoft.Iszr.Proxy.WebServices.Interfaces;
using Aquasoft.Iszr.Proxy.ZadostInfoUtils;

namespace Aquasoft.Iszr.Proxy.WebServices
{
    public static class ZadostInfoExtensions
    {
        //public static bool SetZadostInfoByScope(this ISzrZadostInfo request)
        //{
        //    if (request == null)
        //        return false;

        //    var zadostInfoScope = IszrZadostInfoScope.Current;
        //    if (zadostInfoScope != null)
        //    {
        //        request.ZadostInfo = zadostInfoScope.GetZadostInfo(request);
        //        return true;
        //    }

        //    return false;
        //}

        //public static bool SetZadostDuvodByScope(this ISzrZadostInfo request)
        //{
        //    if (request == null)
        //        return false;
        //    if (request.ZadostInfo == null)
        //        return false;

        //    var zadostDuvodScope = IszrZadostDuvodScope.Current;
        //    if (zadostDuvodScope != null)
        //    {
        //        request.ZadostInfo.DuvodUcel = zadostDuvodScope.GetDuvodText();
        //        return true;
        //    }

        //    return false;
        //}

        //public static bool SetZadostInfoByDefault(this ISzrZadostInfo request)
        //{
        //    if (request == null)
        //        return false;

        //    var zadostInfo = IszrZadostInfoManager.GetDefaultZadostInfo(request);
        //    if (zadostInfo != null)
        //    {
        //        request.ZadostInfo = zadostInfo;
        //        return true;
        //    }

        //    return false;
        //}

        //public static bool SetZadostInfo(this ISzrZadostInfo request)
        //{
        //    if (request == null)
        //        return false;

        //    var r = false;

        //    // set info by scope
        //    if (IszrZadostInfoManager.IsIszrZadostInfoScopeEnabled)
        //        r = request.SetZadostInfoByScope() || r;

        //    // set info by default
        //    if (request.ZadostInfo == null)
        //        r = request.SetZadostInfoByDefault() || r;

        //    // set info.duvod by scope
        //    if (IszrZadostInfoManager.IsIszrZadostDuvodScopeEnabled)
        //        r = request.SetZadostDuvodByScope() || r;

        //    return r;
        //}

        internal static ZadostInfoIszrType ConvertToZadostInfoIszr(this ZadostInfoType zadostInfo)
        {
            if (zadostInfo == null)
                return null;

            if (zadostInfo is ZadostInfoIszrType)
                return (ZadostInfoIszrType)zadostInfo;

            return new ZadostInfoIszrType
            {
                Agenda = zadostInfo.Agenda,
                AgendaZadostId = zadostInfo.AgendaZadostId,
                AgendovaRole = zadostInfo.AgendovaRole,
                Ais = zadostInfo.Ais,
                CasZadosti = zadostInfo.CasZadosti,
                DuvodUcel = zadostInfo.DuvodUcel,
                IszrZadostId = zadostInfo.IszrZadostId,
                Ovm = zadostInfo.Ovm,
                PredchoziZadostId = zadostInfo.PredchoziZadostId,
                Subjekt = zadostInfo.Subjekt,
                Uzivatel = zadostInfo.Uzivatel,
            };
        }
    }
}
